import { CacheEntry } from '../../types/index';

/**
 * 缓存服务接口
 */
export interface ICacheService {
  /**
   * 设置缓存项
   * @param key 缓存键
   * @param data 缓存数据
   * @param expiryMs 过期时间（毫秒）
   */
  set<T>(key: string, data: T, expiryMs: number): Promise<void>;

  /**
   * 获取缓存项
   * @param key 缓存键
   */
  get<T>(key: string): Promise<T | null>;

  /**
   * 检查缓存是否存在且未过期
   * @param key 缓存键
   */
  has(key: string): Promise<boolean>;

  /**
   * 删除缓存项
   * @param key 缓存键
   */
  delete(key: string): Promise<void>;

  /**
   * 清除所有缓存
   */
  clear(): Promise<void>;

  /**
   * 清除过期缓存
   */
  clearExpired(): Promise<void>;
}